var fs = require('fs');

function afficherVolumeHoraire(icalendar){
	var nombreEvenements = 0;
	var volumeHoraire 	 = {heures:0, minutes:0};
	
	fs.readFile(icalendar, 'utf8', function (err,data) {
	  if (err) {
		return console.log(err);
	  }
	  
	  //on decoupe le fichier dans un tableau
	  var lignes = data.split("\n");
	  //on parcourt le fichier tant que l'on ne trouve pas le end:vcalendar ou que le fichier est fini
	  for(var i = 0, nbLignes = lignes.length; i < nbLignes && lignes[i] != "END:VCALENDAR"; i++ ){
	  	//on lit le VEVENT
	  	if(lignes[i] == "BEGIN:VEVENT"){
	  		//on saute une ligne pour atteindre le premier element du VEVENT
	  		i++;
	  		nombreEvenements++;
	  		
	  		var ligneDebut = "";
	  		var ligneFin = "";
	  		//on parcourt le VEVENT
	  		while(lignes[i] != "END:VEVENT"){
	  			//on verifie si la ligne commence par DTSTART ou DTEND
	  			if(lignes[i].lastIndexOf("DTSTART:", 0) === 0){
	  				ligneDebut = lignes[i];
	  			} else if (lignes[i].lastIndexOf("DTEND:", 0) === 0){
	  				ligneFin = lignes[i];
	  			}
	  			i++;
	  		}
	  		
	  		var dateDebut = ligneDebut.split(":")[1];
	  		var dateFin   = ligneFin.split(":")[1];
	  		
	  		var heureDebut = dateDebut.substring(9,11);
	  		var heureFin   = dateFin.substring(9,11);
	  		
	  		var minuteDebut = dateDebut.substring(11,13);
	  		var minuteFin   = dateFin.substring(11,13);
	  		
	  		volumeHoraire.heures  += heureFin - heureDebut;
	  		volumeHoraire.minutes += minuteFin - minuteDebut;
	  		
	  		while(volumeHoraire.minutes >= 60){
	  			volumeHoraire.heures  ++;
	  			volumeHoraire.minutes -= 60;
	  		} 	
	  		
	  		// console.log(heureDebut+" "+minuteDebut+"-"+heureFin +" "+ minuteFin);
	  	}
	  }
	  
	  console.log("nombreEvenements : "+nombreEvenements);
	  console.log("volumeHoraire : "+volumeHoraire.heures+" heure(s) et "+volumeHoraire.minutes+" minute(s).");
	});
}

var file = process.argv[2]; //on récupère le fichier passé en argument

if(file==null || file.split(".").pop()!="ics"){
	console.log("ERREUR : vous devez entrer un fichier .ICS à exploiter.");
}else{
	afficherVolumeHoraire(file);
}
